import { createStore } from 'vuex'
import { TOKEN_NAME } from '../utils/const';

export default createStore({
  state: {
    userInfo:{
      token: '',
      userName: ''
    }
  },
  //useStore().dispatch('setUserInfo', info)
  //Action 提交的是 mutation，而不是直接变更状态。
  actions: { 
    setUserInfo(state, info){
      state.commit('setUserInfo', info)
    },
    getUserInfo(context){
      state.commit('getUserInfo')
    }
  },
  // 提交mutations,useStore().commit('setUserInfo', info), 
  // Action 提交的是 mutation，而不是直接变更状态。
  // mutations 是直接修改
  mutations: {
    setUserInfo(state, info){
      //这个地方不能用state，也不能用 this.state, 只能通过入参把state传进来
      state.userInfo.userName = info.userName
      state.userInfo.token = info.token
    },
    getUserInfo(state){
      return state.userInfo
    }
  },
  modules: {
  }
})

